﻿using Application.Dto;
using Domain.Entitys;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Application.IAppSrevices
{
    public interface IHFService
    {
        /// <summary>
        /// 根据1,2,3级编号查询对应信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        List<HF> HFByKindId(string id);

        /// <summary>
        /// 添加人力资源档案信息
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        Task<int> HFAddAsync(HFAddDto hFAddDto);

        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="pageSize"></param>
        /// <param name="pageIndex"></param>
        /// <returns></returns>
        Task<List<HF>> HFFenYeAsync(int pageSize, int pageIndex);

        /// <summary>
        /// 查询人力资源总数
        /// </summary>
        /// <returns></returns>
        Task<int> HFCountAsync();

        /// <summary>
        /// 根据id查询对应的人力资源信息
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<HF> HFByIDAsync(int id);

        /// <summary>
        /// 人力资源档案复核
        /// </summary>
        /// <param name="hF"></param>
        /// <returns></returns>
        Task<int> HFReviewAsync(HFUpdateDto hFUpdateDto);

        /// <summary>
        /// 修改人力资源档案实发，应发金额
        /// </summary>
        /// <param name="hF"></param>
        /// <returns></returns>
        Task<int> HFUpdateSalarySumAsync(List<HF> hFs);

        /// <summary>
        /// 多条件分页查询人力资源档案数据
        /// </summary>
        /// <param name="fid"></param>
        /// <param name="sid"></param>
        /// <param name="tid"></param>
        /// <param name="mkid"></param>
        /// <param name="mid"></param>
        /// <param name="keywords"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        FenYe<HF> HFWhereList(FenYe<HF> fenYe, string fid, string sid, string tid, string mkid, string mid, string keywords, string startDate, string endDate);
        /// <summary>
        /// 根据人力资源编号查询数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<HF> HFByIDReviewAsync(string hid);

        /// <summary>
        /// 多条件分页查询人力资源档案等待复核数据
        /// </summary>
        /// <param name="fenYe"></param>
        /// <param name="fid"></param>
        /// <param name="sid"></param>
        /// <param name="tid"></param>
        /// <param name="mkid"></param>
        /// <param name="mid"></param>
        /// <param name="keywords"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        FenYe<HF> HFWhereList2(FenYe<HF> fenYe, string fid, string sid, string tid, string mkid, string mid, string keywords, string startDate, string endDate);

        /// <summary>
        /// 人力资源档案变更
        /// </summary>
        /// <param name="hF"></param>
        /// <returns></returns>
        Task<int> HFChangeUpdateAsync(HFChangeUpdateDto hFChangeUpdateDto);

        /// <summary>
        /// 多条件查询人力资源档案已复核，和正常状态数据
        /// </summary>
        /// <param name="fenYe"></param>
        /// <param name="fid"></param>
        /// <param name="sid"></param>
        /// <param name="tid"></param>
        /// <param name="mkid"></param>
        /// <param name="mid"></param>
        /// <param name="keywords"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        FenYe<HF> HFWhereList3(FenYe<HF> fenYe, string fid, string sid, string tid, string mkid, string mid, string keywords, string startDate, string endDate);

        /// <summary>
        /// 人力资源档案删除
        /// </summary>
        /// <param name="hF"></param>
        /// <returns></returns>
        Task<int> HFDeleteAsync(HFDeleteDto hFDeleteDto);

        /// <summary>
        /// 多条件查询人力资源档案已删除数据
        /// </summary>
        /// <param name="fenYe"></param>
        /// <param name="fid"></param>
        /// <param name="sid"></param>
        /// <param name="tid"></param>
        /// <param name="mkid"></param>
        /// <param name="mid"></param>
        /// <param name="keywords"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <returns></returns>
        FenYe<HF> HFWhereList4(FenYe<HF> fenYe, string fid, string sid, string tid, string mkid, string mid, string keywords, string startDate, string endDate);

        /// <summary>
        /// 人力资源档案恢复
        /// </summary>
        /// <param name="hF"></param>
        /// <returns></returns>
        Task<int> HFHFRestoreAsync(HFRestoreDto hFRestoreDto);

        /// <summary>
        /// 查询人力资源档案已删除数据
        /// </summary>
        /// <returns></returns>
        Task<List<HF>> HFDeleteInfoAsync();

        /// <summary>
        /// 查询人力资源档案已删除数量
        /// </summary>
        /// <returns></returns>
        Task<int> HFDeleteInfoCount();

        /// <summary>
        /// 永久删除人力资源档案
        /// </summary>
        /// <returns></returns>
        Task<int> HFDelete(HFDelete1 hFDelete1);
    }
}
